Fix a Linux bug in the driver core in regards to the bind sysfs driver
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 23 Mar 2006 09:58:39 +0000 (10:58 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 23 Mar 2006 09:58:39 +0000 (10:58 +0100)
attribute. I've submitted this to lkml, but it should be included in
Xen now for people who will use the pciback late binding capability.

Signed-off-by: Ryan Wilson <hap9@epoch.ncsc.mil>
patches/linux-2.6.16/device_bind.patch [new file with mode: 0644]

diff --git a/patches/linux-2.6.16/device_bind.patch b/patches/linux-2.6.16/device_bind.patch
new file mode 100644 (file)
index 0000000..34bc4ed
--- /dev/null
@@ -0,0 +1,14 @@
+--- linux-2.6.16/drivers/base/bus.c    2006-03-16 10:50:20.000000000 -0500
++++ linux-2.6.16/drivers/base/bus.c    2006-03-16 11:02:08.000000000 -0500
+@@ -188,6 +188,11 @@ static ssize_t driver_bind(struct device
+               up(&dev->sem);
+               if (dev->parent)
+                       up(&dev->parent->sem);
++
++              if (err > 0)            /* success */
++                      err = count;
++              else if (err == 0)      /* driver didn't accept device */
++                      err = -ENODEV;
+       }
+       put_device(dev);
+       put_bus(bus);